This invention relates to parallel computer systems. A parallel computer system comprises a number of processing nodes interconnected by an internal network which enables the nodes to send messages to each other.
In such a system, interconnection between application programs running in different nodes is conventionally handled by means of a multi-layer protocol stack, for example based on the well known Reference Model for Open Systems Interconnection (OSI). Such a protocol stack typically includes transport, network, logical link and media access control (MAC) layers.
It has been proposed that one or more of the nodes should act as communications elements (CE) providing connection to the outside world by way of one or more external networks, while the other nodes act as processing elements (PE). The PEs communicate with the outside world by way of the CE.
In this case, some means must be provided for routing messages between the external network and the individual applications within the PEs. This may be achieved by means of a relay service, which runs at application level within the CE. However, a problem with this is that it imposes a large processing load on the CE since all incoming messages must be passed up the protocol stack within the CE to relay function, and then passed back down the stack to be transmitted over the internal network to the PE in which the target application is located. This problem becomes more severe as the number of PEs is increased, and as a result the CE can become a bottleneck, slowing down the operation of the whole system.
The object of the present invention is to overcome this problem.